package com.lanchetech.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 课程
 */
@ApiModel(value = "com-lanchetech-entity-Course")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Course implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 课程标题
     */
    @ApiModelProperty(value = "课程标题")
    private String title;

    /**
     * 专栏id
     */
    @ApiModelProperty(value = "专栏id")
    private Long columnId;

    /**
     * 标签，英文逗号分隔
     */
    @ApiModelProperty(value = "标签，英文逗号分隔")
    private String tagList;

    /**
     * 轮播图列表，英文逗号分隔
     */
    @ApiModelProperty(value = "轮播图列表，英文逗号分隔")
    private String imageList;

    /**
     * 课程视频
     */
    @ApiModelProperty(value = "课程视频")
    private String video;

    /**
     * 课程音频
     */
    @ApiModelProperty(value = "课程音频")
    private String audio;

    /**
     * 课程图文详情（富文本）
     */
    @ApiModelProperty(value = "课程图文详情（富文本）")
    private String content;

    /**
     * 点赞数
     */
    @ApiModelProperty(value = "点赞数")
    private Integer goods;

    /**
     * 点击量
     */
    @ApiModelProperty(value = "点击量")
    private Integer views;

    /**
     * 课程简介
     */
    @ApiModelProperty(value = "课程简介")
    private String description;

    /**
     * 访问权限 0 公开 1 仅会员可见 2 仅购买者可见 3 仅会员和购买者可见
     */
    @ApiModelProperty(value = "访问权限 0 公开 1 仅会员可见 2 仅购买者可见 3 仅会员和购买者可见")
    private Byte auth;

    /**
     * 可见会员范围,1,2,前后逗号分隔
     */
    @ApiModelProperty(value = "可见会员范围,1,2,前后逗号分隔")
    private String vips;

    /**
     * 降序，从大到小排序
     */
    @ApiModelProperty(value = "降序，从大到小排序")
    private Integer sorts;

    /**
     * 状态 0 已关闭 1 已开启
     */
    @ApiModelProperty(value = "状态 0 已关闭 1 已开启")
    private Byte status;

    /**
     * 删除 0 未删除 1 已删除
     */
    @ApiModelProperty(value = "删除 0 未删除 1 已删除")
    private Byte deleted;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updatedAt;

    /**
     * 课程音频（预览版）
     */
    @ApiModelProperty(value = "课程音频（预览版）")
    private String audioPreview;

    /**
     * 每日推荐 20210415
     */
    @ApiModelProperty(value = "每日推荐 20210415")
    private String recommendDate;

    /**
     * 课程主图
     */
    @ApiModelProperty(value = "课程主图")
    private String mainImage;

    /**
     * 拓展参数JSON
     */
    @ApiModelProperty(value = "拓展参数JSON")
    private String feature;

    /**
     * 学习人数
     */
    @ApiModelProperty(value = "学习人数")
    private Long studyCount;

    private static final long serialVersionUID = 1L;

    public static CourseBuilder builder() {
        return new CourseBuilder();
    }
}